package com.gqz.patrol.vo;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gqz.common.core.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 能源-巡视工单表 导出所需vo
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class EnPatrolTaskExcelVo {
    /**
     * 主键标识
     **/
    @Excel(isExport = false)
    private String id;

    /**
     * 工单编号
     **/
    @Excel(name = "工单编号", width = 20)
    private String taskNo;

    /**
     * 工单名称
     **/
    @Excel(name = "工单名称", width = 20)
    private String taskName;

    /**
     * 运维单位编码
     **/
    @Excel(isExport = false)
    private String maintainUnitNo;

    /**
     * 运维单位
     **/
    @Excel(name = "运维单位", width = 20)
    private String maintainUnitName;

    /**
     * 运维班组编码
     **/
    @Excel(isExport = false)
    private String maintainTeamNo;

    /**
     * 运维班组
     **/
    @Excel(isExport = false)
    private String maintainTeamName;

    /**
     * 巡视人员编号
     **/
    @Excel(isExport = false)
    private String patrolPersonId;

    /**
     * 巡视人员
     **/
    @Excel(name = "巡视人员", width = 20)
    private String patrolPersonName;

    /**
     * 巡视机房编码
     **/
    @Excel(isExport = false)
    private String patrolRoomNo;

    /**
     * 巡视机房
     **/
    @Excel(name = "巡视机房", width = 20)
    private String patrolRoomName;

    /**
     * 巡视对象编码s
     **/
    @Excel(isExport = false)
    private String patrolTargetNos;

    /**
     * 巡视对象s
     **/
    @Excel(name = "巡视对象", width = 20)
    private String patrolTargetNames;

    /**
     * 巡视对象类型编码s
     **/
    @Excel(isExport = false)
    private String patrolTargetTypeNos;

    /**
     * 巡视对象类型s
     **/
    @Excel(name = "巡视对象类型", width = 20)
    private String patrolTargetTypeNames;

    /**
     * 计划开始时间
     **/
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "planStartTime", format = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "计划开始时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date planStartTime;

    /**
     * 计划结束时间
     **/
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "planEndTime", format = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "计划结束时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date planEndTime;

    /**
     * 巡视内容描述
     **/
    @Excel(name = "巡视内容描述", width = 20)
    private String patrolDescription;

    /**
     * 巡视类型编码
     **/
    @Excel(isExport = false)
    private String patrolTypeNo;

    /**
     * 巡视类型
     **/
    @Excel(name = "巡视类型", width = 20)
    private String patrolTypeName;

    /**
     * 工单来源(1.平台2.app)
     **/
    @Excel(name = "工单来源(1.平台2.app)", width = 2, readConverterExp = "平台_1,APP_2")
    private String taskSourceNo;

    /**
     * 平台工单状态编码 0-未派单 1-已派单 2-到达现场 3-巡视结束 99-归档
     **/
    @Excel(isExport = false)
    private String pcTaskStatusNo;

    /**
     * 平台工单状态
     **/
    @Excel(name = "平台工单状态", width = 20)
    private String pcTaskStatusName;

    /**
     * App工单状态编码
     **/
    @Excel(isExport = false)
    private String appTaskStatusNo;

    /**
     * App工单状态
     **/
    @Excel(name = "App工单状态", width = 20)
    private String appTaskStatusName;

    /**
     * 创建工单人
     **/
    @Excel(name = "创建工单人", width = 20)
    private String creator;

    /**
     * 创建工单时间
     **/
    @Excel(name = "创建工单时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "creatTime", format = "yyyy-MM-dd HH:mm:ss")
    private String creatTime;

    /**
     * 派单人编号
     **/
    @Excel(isExport = false)
    private String sendPersonId;

    /**
     * 派单人
     **/
    @Excel(name = "派单人", width = 20)
    private String sendPersonName;

    /**
     * 派单人电话
     **/
    @Excel(name = "派单人电话", width = 20)
    private String sendTel;

    /**
     * 派单时间
     **/
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "sendTime", format = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "派单时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date sendTime;

    /**
     * 接单人编号
     **/
    @Excel(isExport = false)
    private String receiverId;

    /**
     * 接单人
     **/
    @Excel(name = "接单人", width = 20)
    private String receiver;

    /**
     * 接单人电话
     **/
    @Excel(name = "接单人电话", width = 20)
    private String receiverTel;

    /**
     * 接单时间
     **/
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "receiverTime", format = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "接单时间", width = 20, dateFormat = "yyyy-MM-dd hh:mm:ss")
    private Date receiverTime;

    /**
     * 接单坐标
     **/
    @Excel(name = "接单坐标", width = 20)
    private String receivingCoordinate;

    /**
     * 认证时间
     **/
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "authTime", format = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "认证时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date authTime;

    /**
     * 现场描述
     **/
    @Excel(name = "现场描述", width = 20)
    private String sceneDescription;

    /**
     * 现场描述图片IDs
     **/
    @Excel(isExport = false)
    private String sitePictureIds;

    /**
     * 退单时间
     **/
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "backTime", format = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "退单时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date backTime;

    /**
     * app结束工单时间
     **/
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "aEndTime", format = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "app结束工单时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date appEndTime;

    /**
     * app结束工单坐标
     **/
    @Excel(name = "app结束工单坐标", width = 20)
    private String appEndCoordinate;

    /**
     * 是否删除 0-否 1-是
     **/
    @Excel(isExport = false)
    private String isDel;

    /**
     * 周期
     **/
    @Excel(name = "周期", width = 20)
    private String period;

    /**
     * 周期截止时间
     **/
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "periodEndTime", format = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "周期截止时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date periodEndTime;

    /**
     * 是否周期产生的工单0-否 1-是
     **/
    @Excel(name = "是否周期产生的工单0-否 1-是", width = 20, readConverterExp = "否_0,是_1")
    private String isPeriod;

    /**
     * 周期工单的源工单
     **/
    @Excel(name = "周期工单的源工单", width = 20)
    private String sourceTaskNo;

    /**
     * 认证图片IDs
     **/
    @Excel(isExport = false)
    private String authPictureIds;

    /**
     * 评价说明
     **/
    @Excel(name = "评价说明", width = 20)
    private String appraiseContent;

    /**
     * 评价人id
     **/
    @Excel(isExport = false)
    private String appraisePersonId;

    /**
     * 评价人名称
     **/
    @Excel(name = "评价人名称", width = 20)
    private String appraisePersonName;

    /**
     * 评价时间
     **/
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "appraiseTime", format = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "评价时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date appraiseTime;

    /**
     * 评价结论 1-合格 2-不合格
     **/
    @Excel(name = "评价结论 1-合格 2-不合格", readConverterExp = "合格_1,不合格_2")
    private String appraiseStatus;

    /**
     * 评价结论 合格 不合格
     **/
    @Excel(name = "评价结论 合格 不合格")
    private String appraiseStatusName;

    /**
     * 巡视结论
     **/
    @Excel(name = "巡视结论", width = 20)
    private String patrolConclusion;

    /**
     * 是否检查机房卫生
     **/
    @Excel(name = "检查机房卫生", readConverterExp = "是_1,否_0")
    private String isClean;

    /**
     * 卫生-机房整体
     **/
    @Excel(isExport = false)
    private String jfOverallPictureIds;

    /**
     * 卫生-机房门口
     **/
    @Excel(isExport = false)
    private String jfDoorwayPictureIds;

    /**
     * 卫生-主要设备
     **/
    @Excel(isExport = false)
    private String jfMajorEquipPictureIds;

    /**
     * 备注
     **/
    @Excel(name = "备注", width = 20)
    private String remark;

    /**
     * 设备是否全选
     **/
    @Excel(isExport = false)
    private Integer equipAllSelect;

}
